The use of computer technology has become commonplace in business today. Advances in technology allow workers to access information relating to their employment from almost anywhere. Telecommuting and personal communication devices with e-mail and other capabilities allow employees to be productive even when they are not physically at an employer location.
With these advances, however, come challenges. Electronic data such as databases and documents must be accessible. However, storing them locally on remote devices creates a situation where multiple versions of data exist that may affect the integrity and security of the information. Additionally, information belonging to the employer may be proprietary or subject to regulatory requirements such as the protection of private personal information. To maintain control over data, companies desire to have data stored on managed servers where there is a consistent version of the data, that is secured and backed up by the administrative and support staff.
One means of protecting company data is through the use of thin clients. A thin client is a communication protocol that allows a remote computer to communicate with a centralized server that houses data and applications available to the user of the remote computer. The thin client allows the user to see data in an application just as if the application were running on the user's local system, but all of the processing required by the application and the resulting data is performed and housed at the centralized server location. The data is therefore, subject to all security measures provided by the data owner. This provides protection in that no actual data, but only a graphical representation of the data or application is sent to the remote device. For example, if a sensitive document was created using a word processor on a notebook computer remotely connected to a centralized server, the document and all temporary files created by the word processing application are resident in the centralized server. No trace of the data is present in the notebook computer. If the notebook computer were to be lost or stolen, sensitive data could not be retrieved from the notebook computer because the sensitive data was never stored in any memory device within the notebook computer.
Thin client architectures also allow companies to leverage economies of scale. Because applications are centrally located and administered, there is no need to push software updates out to hundreds or thousands of workstations. A single update process can be done at the application server and the changes will be effective for all clients that log into the server subsequent to the update.
When the number of users accessing a central resource becomes large, the administration of the overall system becomes more complex. Large numbers of users require the implementation of multiple application servers. Application servers that are clustered to serve the data processing needs of an organization are called farms. Multiple servers that make up a farm will appear to users as a single computer name or IP address on the network, but may actually be a complicated network of servers. A server farm must be administered in a way that balances the processing loads of all users across the multiple servers as evenly as possible so that no individual server is overloaded.
Processing distributed applications relies on server farms. Hundreds of users may be accessing the server farm at any one time. Any problem occurring in the server farm may affect all the users connected to that farm. For example, a problem in one software application that causes a condition such as excess CPU consumption, may cause all applications being housed on the server to slow to unacceptable service levels. Similarly, a request by a user that causes an application to hang or take a long time to execute the request, such as a large search operation, could adversely affect all users connected to the server farm. For this reason, it is important for an administrator to be able to quickly identify the source of a problem and ensure that its effects on the community of users is minimized.